package cn.iocoder.yudao.module.contract.service.dataIndex;

import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.contract.controller.admin.client.vo.ClientPageReqVO;
import cn.iocoder.yudao.module.contract.controller.admin.client.vo.ClientSaveReqVO;
import cn.iocoder.yudao.module.contract.dal.dataobject.client.ClientDO;
import cn.iocoder.yudao.module.contract.dal.dataobject.dataIndex.DataIndexDO;
import cn.iocoder.yudao.module.contract.dal.mysql.client.ClientMapper;
import cn.iocoder.yudao.module.contract.dal.mysql.dataIndex.DataIndexMapper;
import cn.iocoder.yudao.module.contract.dal.redis.RedisKeyConstants;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.annotations.VisibleForTesting;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import javax.annotation.Resource;
import java.util.List;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CLIENT_EXISTS;
import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CLIENT_NOT_EXISTS;

/**
 * 客户 Service 实现类
 *
 * @author 芋道源码
 */
@Service
@Validated
public class DataIndexServiceImpl extends ServiceImpl<DataIndexMapper, DataIndexDO> implements DataIndexService {

    @Override
    public Long getValue(String key) {
        Long value = 0L;
        DataIndexDO dataIndexDO = getOne(new LambdaQueryWrapper<DataIndexDO>().eq(DataIndexDO::getIndexKey,key),false);
        if(dataIndexDO!=null){
            value = dataIndexDO.getIndexValue();
        }
        return value;
    }

    @Override
    public void updateValue(String key,Long value) {

        DataIndexDO dataIndexDO = getOne(new LambdaQueryWrapper<DataIndexDO>().eq(DataIndexDO::getIndexKey,key),false);
        if(dataIndexDO==null){
            dataIndexDO = new DataIndexDO();
            dataIndexDO.setIndexKey(key);
        }
        dataIndexDO.setIndexValue(value);
        saveOrUpdate(dataIndexDO);

    }


}